package com.leetcode.剑指Offer;

/**
 * 定义一个函数，输入一个链表的头节点，反转该链表并输出反转后链表的头节点。
 * 
 * @author LZF
 *
 */
public class Offer24反转链表 {
	/**
	 * 定义一个前置节点，初始为null，遍历链表，让每个节点都指向前置节点
	 */
	public ListNode reverseList(ListNode head) {
		if (head == null)
			return head;
		ListNode preNode = null;
		while (head.next != null) {
			ListNode temp = head;
			head = head.next;
			temp.next = preNode;
			preNode = temp;
		}
		head.next = preNode;
		return head;
	}

	public class ListNode {
		int val;
		ListNode next;

		ListNode(int x) {
			val = x;
		}
	}
}
